This work is largely based on D3.6, it extends SimPhoNy-Future into a new Package developed specifcally with DOME requirements in mind: Ontology-Manager, OntoVIS and sigraDB.
DomeDataSet from D3.6 is in /Users/adham/dev/dome/Ontology-matters/domeo/domeo.ttl
from ontology_manager.ontology_utils import OntologyManager
from rdflib import Graph, URIRef, Namespace, Literal, BNode, collection
from rdflib.namespace import SKOS, RDF, RDFS, OWL
from datetime import date
from rdflib.extras.external_graph_libs import rdflib_to_networkx_multidigraph, rdflib_to_graphtool
import networkx as nx
import matplotlib.pyplot as plt
from ontodot.ontodot import vis, random_date_time, auto_bind_namespaces, printH, generate_uuid, generate_random_materialproject_id
from ontodot.ontodot import OntoVis
from types import SimpleNamespace
import os, random
dome=SimpleNamespace() # This is equivalent to a *SimPhoNy lightweight session*
dome.g=Graph(bind_namespaces="rdflib")
dome.ns=Namespace('https://dome40.eu/semantics/dome4.0_core#')
dome.path = "/Users/adham/dev/ontology/dome/Ontology-matters/"
dome.file='dome4.0_core_tbox.ttl'
mio=Graph(bind_namespaces="rdflib")
mio.parse("/Users/adham/dev/ontology/ontology_manager/MIO/mio/mio.ttl")
<Graph identifier=N26192c28f845414c90332444d3926968 (<class 'rdflib.graph.Graph'>)>
vis(mio)
dome.g.parse(os.path.join(dome.path, dome.file))
# we could add it to mio_manager manually actually, then use it as we want,
<Graph identifier=Nc188d22ff4d44ff0a84fedb07d48e497 (<class 'rdflib.graph.Graph'>)>
gg=dome.g + mio
vis(gg)
# Using the power of RDFLIB it is easy to combine ontology:
gc=dome.g+mio
# Using the new OntoVis: Visualisation and inspection is easy (including also animated fancy demo..)
ovis = OntoVis(gc)
vis(ovis.zoom_in(URIRef("http://dome40.eu/semantics/dome4.0_core#data_set"), 2))
(an eco system of data needs an eco system of ontology!)
# these are bindings (RDFLIB)
binds="""
@prefix domeES: <http://dome40.eu/semantics/dome4.0_core#> .
@prefix mio: <http://www.ddmd.io/mio/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix euroscivoc: <http://data.europa.eu/8mn/euroscivoc/> .
@prefix evmpo: <https://emmc.eu/semantics/evmpo/evmpo.ttl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix http-meth: <http://www.w3.org/2011/http-methods#> .
@prefix msm: <http://iserve.kmi.open.ac.uk/ns/msm#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xs: <http://www.w3.org/2001/XMLSchema#> .
"""
cuds=SimpleNamespace() # we use now simple version, no checks for the demo
cuds.g=Graph()
cuds_collection=set()
num_data_sets=10 # the number of synthetic data sets we want to create
domeES=nsbinds['domeES']
mioNS=nsbinds['mio']
Value property to an entity more efficiently¶(more details later)
e.g. instead of saying
`a data set` hasDate `2024-03-19 13:43:32.991488'(Literal)`
we say:
`a data set` hasPart 'a Date` (which is a class instance)
'a Date` hasValue `2024-03-19 13:43:32.991488'(Literal)`
here `a somethin` is an instance, i.e., a particular.
Tech details:
We can make an utility "macro" that takes:
1. a class instance (s)
2. a class instance relating to a property (p) (Date, Color, etc.0
3. the value (v) of the property, and composes:
add_property(s,p,v):
g.add(s, hasPart, p)
g.add(p, hasValue, v)
Another utility is to create an individual (instance) of certain type providing hte name (IRI) and the type class:
s= create_class(name:URIref, type: Class)
#Since this is a demo, we make our own creator, publisher, ...
random_creator = lambda: random.choice(["Amit Bhave", "Silvia Chiacchiera", "Bjorn Tore", "Owain Baynon", "Adham Hashibon"]) # these will be instances later of a User/Dataproider etc.
random_publisher = lambda: random.choice(["CMCL", "FRAUNHOFER", "SINTEF", "BOSCH", "SIEMENS", "Nature Scientific Data", "MaterialsProject.prg"]) # these will be instances later of a User/Dataproider etc.
random_keywords = lambda k: random.sample(s.split('\n'), random.randint(3, 6))
MIO+domeES ontology!¶esvoc = SimpleNamespace()
esvoc.g = Graph()
esvoc.desc = "the EuroSciVoc"
esvoc.path = "/Users/adham/dev/dome/Ontology-matters/external/EuroSciVoc-skos-ap-eu_1.3.ttl" # Once we find and end point, we can get this from teh net directly.
esvoc.g.parse(esvoc.path)
# SPARQL query to choose all elements narrower than engineering and technology.
q="""
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?narrowerConcept ?narrowerLabel
WHERE {
?narrowerConcept skos:broader+ <http://data.europa.eu/8mn/euroscivoc/64605fff-1946-4fd4-b021-e2e83b71dcac> .
?narrowerConcept skos:prefLabel ?narrowerLabel .
FILTER(LANGMATCHES(LANG(?narrowerLabel), "en"))
}
"""
# Noe the UUID may change between versions, need to confirm!
# run the query
esvoc.r = esvoc.g.query(q)
#for i in esvoc.r:
# print(i)
printH(f" We find {len(esvoc.r)} semantic keywords relevant for technology and engineering")
We find 208 semantic keywords relevant for technology and engineering: =======================================================================
esvoc.r_formated = [{'IRI': str(row.narrowerConcept), 'Label': str(row.narrowerLabel)} for row in esvoc.r]
esvoc.random = lambda r: random.sample([[r_['IRI'], r_['Label']] for r_ in r], random.randint(2, 6))
for i in range(3):
print(esvoc.random(esvoc.r_formated))
[['http://data.europa.eu/8mn/euroscivoc/a039a9e8-4380-4e34-8ee5-b54465ca8fe6', 'water supply systems'], ['http://data.europa.eu/8mn/euroscivoc/6ec77859-f069-4eb2-9d70-3021ba5b325a', 'cognitive robots'], ['http://data.europa.eu/8mn/euroscivoc/969ab3ad-46f6-4637-a09b-92670ed60152', 'geotechnics'], ['http://data.europa.eu/8mn/euroscivoc/06109c22-82cc-4ba3-a0cd-22e516f18f66', 'structural health monitoring']] [['http://data.europa.eu/8mn/euroscivoc/17e1c13a-0c3d-45ed-ac46-30fa3e7e2bf5', 'recycling'], ['http://data.europa.eu/8mn/euroscivoc/db293df2-83b1-46fe-b4f1-c5ffb03191e9', 'graphene']] [['http://data.europa.eu/8mn/euroscivoc/26770c2b-64ce-4611-896f-cdefb4893317', 'civil engineering'], ['http://data.europa.eu/8mn/euroscivoc/cc4c298e-7c41-46b4-ac6c-6a2b71d476c5', 'data networks'], ['http://data.europa.eu/8mn/euroscivoc/6b4f284b-6a4b-466d-a600-812ac17321e6', 'bioplastics']]
for i in range(1, num_data_sets + 1):
cuds.ds = URIRef(f"{domeES}DS_{i}")
cuds.g.add((cuds.ds, RDF.type, domeES.data_set))
# Add the required DOME 4.0 Data Set Ontology attributes
# These are cuds.add(spo triplet)
# cuds.uri = URIRef(f"http://materialsproject.org/data/calc_{i}")
mpid=generate_random_materialproject_id()
#uri = URIRef("https://next-gen.materialsproject.org/materials/mp-19149")
uri=URIRef(f"https://next-gen.materialsproject.org/materials/{mpid}")
cuds.g.add( (uri, RDF.type, domeES.URI) )
cuds.g.add((cuds.ds, domeES.hasPart, uri))
printH(f"this is a DOME 4.0 Data Set: {cuds.ds}")
printH(f"this Data Set point to: {uri}")
wp = URIRef("https://next-gen.materialsproject.org/")
cuds.g.add( (wp, RDF.type, domeES.web_platform) )
cuds.g.add((cuds.ds, domeES.hasPart, wp))
dc = URIRef(f"{domeES}/{generate_uuid()}")
cuds.g.add( (dc, RDF.type, domeES.issued_date) )
the_date=Literal(random_date_time())
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
cuds.g.add( (dc, mioNS.hasValue, the_date) )
dc = URIRef(f"{domeES}/{generate_uuid()}")
cuds.g.add( (dc, RDF.type, domeES.description) )
the_value=Literal("This is a description that will change later")
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
cuds.g.add( (dc, mioNS.hasValue, the_value) )
dc = URIRef(f"{domeES}/{generate_uuid()}")
cuds.g.add( (dc, RDF.type, domeES.data_creator) )
the_value=Literal(random_creator())
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
cuds.g.add( (dc, mioNS.hasValue, the_value) )
dc = URIRef(f"{domeES}/{generate_uuid()}")
cuds.g.add( (dc, RDF.type, domeES.license) )
the_value=Literal("CC-BY 4.0")
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
cuds.g.add( (dc, mioNS.hasValue, the_value) )
dc = URIRef(f"{domeES}/{generate_uuid()}")
cuds.g.add( (dc, RDF.type, domeES.data_publisher) )
the_value=Literal(random_publisher())
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
cuds.g.add( (dc, mioNS.hasValue, the_value) )
dc = URIRef(f"{domeES}/{generate_uuid()}")
cuds.g.add( (dc, RDF.type, domeES.title) )
the_value=Literal("this is a title placeholder")
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
cuds.g.add( (dc, mioNS.hasValue, the_value) )
# get some semantic EUROSCIVOC keywords for demo
ks=esvoc.random(esvoc.r_formated)
for k in ks:
print(k[1])
dc = URIRef(k[0])
cuds.g.add( (dc, RDF.type, domeES.semantic_keyword) )
cuds.g.add( (dc, RDFS.label, Literal(k[1]) ))
cuds.g.add( (cuds.ds, domeES.hasPart, dc) )
# g.add((data_set_uri, mio.hasPart, domeES.syntactic_keyword))
this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_1: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-123: =============================================================================== fermentation composites renewable energy this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_2: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-22: ============================================================================== naval engineering bioleaching nuclear waste management separation technologies this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_3: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-14: ============================================================================== mining and mineral processing airport engineering additive manufacturing this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_4: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-77: ============================================================================== electric power distribution smart sensors reverse osmosis this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_5: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-96: ============================================================================== structural health monitoring swarm robotics nanophotonics crystals carbon capture engineering diagnostic technologies this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_6: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-57: ============================================================================== other engineering and technologies drinking water treatment processes ocean engineering vehicle engineering this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_7: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-14: ============================================================================== bluetooth liquid crystals laboratory samples analysis computer hardware this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_8: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-171: =============================================================================== woodworking railroad engineering this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_9: ========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-183: =============================================================================== fiber-optic network magnetic resonance imaging this is a DOME 4.0 Data Set: http://dome40.eu/semantics/dome4.0_core#DS_10: =========================================================================== this Data Set point to: https://next-gen.materialsproject.org/materials/mp-41: ============================================================================== water supply systems control systems mobile network
g.add((someURI, RDF.type, domeES.data_set))
vis(cuds.g+dome.g+mio)
dot: graph is too large for cairo-renderer bitmaps. Scaling by 0.607561 to fit
gc=cuds.g+dome.g+mio
ovis = OntoVis(gc)
vis(ovis.zoom_in(URIRef("http://dome40.eu/semantics/dome4.0_core#DS_2"), 3))
inspect_iri=URIRef("http://dome40.eu/semantics/dome4.0_core#DS_2")
q="""
SELECT ?predicate ?object
WHERE {
<http://dome40.eu/semantics/dome4.0_core#DS_2> ?predicate ?object .
}
"""
DS99 = Graph()
r=gc.query(q)
for i in r:
DS99.add((inspect_iri, i.predicate, i.object))
q2 = f"""
SELECT ?predicate ?object
WHERE {{
<{i.object}> ?predicate ?object .
}}
"""
r2 = gc.query(q2)
for j in r2:
DS99.add((j.object, j.predicate, j.object))
print(j.object, j.predicate, j.object)
bioleaching http://www.w3.org/2000/01/rdf-schema#label bioleaching http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword nuclear waste management http://www.w3.org/2000/01/rdf-schema#label nuclear waste management http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://dome40.eu/semantics/dome4.0_core#title http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#title this is a title placeholder http://www.ddmd.io/mio/hasValue this is a title placeholder CMCL http://www.ddmd.io/mio/hasValue CMCL http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_publisher http://dome40.eu/semantics/dome4.0_core#license http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#license CC-BY 4.0 http://www.ddmd.io/mio/hasValue CC-BY 4.0 This is a description that will change later http://www.ddmd.io/mio/hasValue This is a description that will change later http://dome40.eu/semantics/dome4.0_core#description http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#description 2025-01-08T12:08:21.038014 http://www.ddmd.io/mio/hasValue 2025-01-08T12:08:21.038014 http://dome40.eu/semantics/dome4.0_core#issued_date http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#issued_date http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword naval engineering http://www.w3.org/2000/01/rdf-schema#label naval engineering http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword separation technologies http://www.w3.org/2000/01/rdf-schema#label separation technologies http://dome40.eu/semantics/dome4.0_core#web_platform http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#web_platform http://dome40.eu/semantics/dome4.0_core#data_creator http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_creator Silvia Chiacchiera http://www.ddmd.io/mio/hasValue Silvia Chiacchiera http://dome40.eu/semantics/dome4.0_core#URI http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#URI http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_publisher http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://dome40.eu/semantics/dome4.0_core#description http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#description http://dome40.eu/semantics/dome4.0_core#title http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#title http://dome40.eu/semantics/dome4.0_core#syntactic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#syntactic_keyword http://dome40.eu/semantics/dome4.0_core#license http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#license http://dome40.eu/semantics/dome4.0_core#data_creator http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_creator http://dome40.eu/semantics/dome4.0_core#web_platform http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#web_platform http://dome40.eu/semantics/dome4.0_core#URI http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#URI http://dome40.eu/semantics/dome4.0_core#name http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#name http://dome40.eu/semantics/dome4.0_core#issued_date http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#issued_date Dome Data Set http://www.w3.org/2000/01/rdf-schema#label Dome Data Set http://www.w3.org/2002/07/owl#Class http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Class A dome specific representation of a Semantic Data Set http://www.w3.org/2000/01/rdf-schema#comment A dome specific representation of a Semantic Data Set http://www.ddmd.io/mio/SDS http://www.w3.org/2000/01/rdf-schema#subClassOf http://www.ddmd.io/mio/SDS
for s, p, o in DS99:
print(s, p, o)
this is a title placeholder http://www.ddmd.io/mio/hasValue this is a title placeholder 2025-01-08T12:08:21.038014 http://www.ddmd.io/mio/hasValue 2025-01-08T12:08:21.038014 http://www.ddmd.io/mio/SDS http://www.w3.org/2000/01/rdf-schema#subClassOf http://www.ddmd.io/mio/SDS http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart https://next-gen.materialsproject.org/materials/mp-22 nuclear waste management http://www.w3.org/2000/01/rdf-schema#label nuclear waste management http://dome40.eu/semantics/dome4.0_core#web_platform http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#web_platform http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/7b002931-b33d-4f72-87db-4ae7db02e938 http://dome40.eu/semantics/dome4.0_core#issued_date http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#issued_date http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/5ae7bd70-d708-4d9c-b090-083a42d44632 http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_publisher This is a description that will change later http://www.ddmd.io/mio/hasValue This is a description that will change later bioleaching http://www.w3.org/2000/01/rdf-schema#label bioleaching CC-BY 4.0 http://www.ddmd.io/mio/hasValue CC-BY 4.0 http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/651fb7c0-6a5b-487e-b4ed-a6e8633cc820 http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/971f78a7-0a4a-4c42-898a-2dba132550ad http://dome40.eu/semantics/dome4.0_core#URI http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#URI http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/f6951c79-0493-427a-a82f-0cba8f550dce http://dome40.eu/semantics/dome4.0_core#title http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#title http://dome40.eu/semantics/dome4.0_core#description http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#description naval engineering http://www.w3.org/2000/01/rdf-schema#label naval engineering http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/e017c36f-dfb5-4310-be7c-340a0a9ce178 http://dome40.eu/semantics/dome4.0_core#data_creator http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_creator http://dome40.eu/semantics/dome4.0_core#DS_2 http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#data_set http://dome40.eu/semantics/dome4.0_core#data_publisher http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_publisher http://dome40.eu/semantics/dome4.0_core#name http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#name CMCL http://www.ddmd.io/mio/hasValue CMCL http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://data.europa.eu/8mn/euroscivoc/4d3e0b8f-ce04-475e-933f-a82f26f1086f http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart https://next-gen.materialsproject.org/ separation technologies http://www.w3.org/2000/01/rdf-schema#label separation technologies http://dome40.eu/semantics/dome4.0_core#license http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#license http://dome40.eu/semantics/dome4.0_core#description http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#description http://dome40.eu/semantics/dome4.0_core#title http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#title http://dome40.eu/semantics/dome4.0_core#syntactic_keyword http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#syntactic_keyword A dome specific representation of a Semantic Data Set http://www.w3.org/2000/01/rdf-schema#comment A dome specific representation of a Semantic Data Set http://dome40.eu/semantics/dome4.0_core#URI http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#URI http://dome40.eu/semantics/dome4.0_core#data_creator http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#data_creator Dome Data Set http://www.w3.org/2000/01/rdf-schema#label Dome Data Set http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/6f391d1a-52de-47ca-8c4d-cbf3848ab542 http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/34717bf5-c113-4044-8aa0-a54f29f887eb http://dome40.eu/semantics/dome4.0_core#DS_2 http://dome40.eu/semantics/dome4.0_core#hasPart http://dome40.eu/semantics/dome4.0_core#/6e37587a-683b-4395-8bb9-3f3dcebc5ce7 http://www.w3.org/2002/07/owl#Class http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Class http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#semantic_keyword http://dome40.eu/semantics/dome4.0_core#license http://www.ddmd.io/mio/hasPart http://dome40.eu/semantics/dome4.0_core#license http://dome40.eu/semantics/dome4.0_core#web_platform http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#web_platform http://dome40.eu/semantics/dome4.0_core#issued_date http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dome40.eu/semantics/dome4.0_core#issued_date Silvia Chiacchiera http://www.ddmd.io/mio/hasValue Silvia Chiacchiera
vis(DS99)
q = """
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX domeES: <http://dome40.eu/semantics/dome4.0_core#>
SELECT ?s ?p ?o ?oLabel
WHERE {
?s ?p ?o .
?o rdfs:label ?oLabel .
?o rdfs:label "medical engineering" .
}
"""
r=gc.query(q)
for i in r:
print(i)